#ifndef CMDTASK_H_
#define CMDTASK_H_
#include "dirStack.h"

typedef enum
{
    CMD_TYPE_INIT = -1,
    CMD_TYPE_CD = 1,
    CMD_TYPE_LS,
    CMD_TYPE_PWD,
    CMD_TYPE_MKDIR,
    CMD_TYPE_RMDIR,
    CMD_TYPE_REMOVE,
    CMD_TYPE_PUTS,
    CMD_TYPE_GETS
} CmdType;

typedef struct task_s
{
    int _clientFd;    // 对端fd
    CmdType _cmdType; // 命令类型
    char _data[200];  // 存储命令
    struct task_s *_pNext;
} task_t;

task_t *_task_init(void);

void doTask(task_t *ptask);

// 任务接口
void cmdCd(task_t *ptask);
void cmdLs(task_t *ptask);
void cmdPwd(task_t *ptask);

void cmdMkdir(task_t *ptask);
void cmdRmdir(task_t *ptask);

void cmdRemove(task_t *ptask);
void cmdPuts(task_t *ptask);
void cmdGets(task_t *ptask);

#endif
